package com.yuexunit.finance.member.action.v1;

import java.util.Date;

import com.yuexunit.finance.context.FinVersion1;
import com.yuexunit.finance.member.action.v1.model.DaysEarningBaseDetail;
import com.yuexunit.finance.member.action.v1.model.DaysEarningEnterpriseBaseDetail;
import com.yuexunit.finance.member.action.v1.model.EarningSummaryBaseDetail;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;
import com.yuexunit.web.annotation.Action;
import com.yuexunit.web.annotation.Parameter;
import com.yuexunit.web.annotation.Permission;

/**
 * Created by HuangYH on 2015/9/24.
 */
public interface DaysEarningActionApi {
	@Permission
	@Action(version = FinVersion1.class, description = "收益列表")
	public PageList<DaysEarningBaseDetail> inquireDaysEarningPageList(
			@Parameter(name = "interest", description = "服务费", nullable = true) Double interest,
			@Parameter(name = "enterpriseName", description = "企业名 ", nullable = true) String enterpriseName,
			@Parameter(name = "interestDates", description = "放款日期 ", nullable = true) Date interestDates,
			@Parameter(name = "createDateTimeEnd", description = "放款日期 ", nullable = true) Date createDateTimeEnd,
			@Parameter(name = "financeId", description = "融资ID", nullable = true) Long financeId,
			@Parameter(name = "financeNumber", description = "融资编号 ", nullable = true) String financeNumber,
			@Parameter(name = "enterpriseId", description = "企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "收益详情")
	public DaysEarningBaseDetail inquireDaysEarningDetail(
			@Parameter(name = "daysEarningId", description = "日收益ID", nullable = true) Long daysEarningId,
			@Parameter(name = "interestDates", description = "放款日期 ", nullable = true) Date interestDates,
			@Parameter(name = "financeId", description = "融资ID", nullable = true) Long financeId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "按企业")
	public PageList<DaysEarningEnterpriseBaseDetail> inquireSaysEarningEnterprisePageList(
			@Parameter(name = "enterpriseName", description = "企业名 ", nullable = true) String enterpriseName,
			@Parameter(name = "interestDts", description = "时间", nullable = true) Date interestDts,
			@Parameter(name = "createDateTimeEnd", description = "时间 ", nullable = true) Date createDateTimeEnd,
			@Parameter(name = "financeId", description = "融资Id", nullable = true) Long financeId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "收益汇总明细")
	public EarningSummaryBaseDetail inquireEarningSummarys();
	
	@Permission
	@Action(version = FinVersion1.class, description = "某月日收益列表")
	public PageList<DaysEarningBaseDetail> inquireMonthDaysEarningPageList(
			@Parameter(name = "financeNumber", description = "融资编号 ") String financeNumber,
			@Parameter(name = "earningDateStart", description = "起始日期 ") Date earningDateStart,
			@Parameter(name = "earningDateEnd", description = "结束日期") Date earningDateEnd,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
}
